10 REM LAWINE ==================C64 20 REM (P) COMMODORE WELT TEAM === 30 REM ============================ 40 REM (C) BY G. KRAMER === 50 REM 4407 EMSDETTEN === 60 REM ============================ 70 REM BASIC V2.0 === 80 REM C64 + 1530/1541 === 90 REM ============================ 100 GOSUB2770 110 GOSUB1130 120 GOSUB2160 130 GOSUB190 140 GOSUB390 150 GOSUB980 160 ********************** 170 *** SPIELER SETZEN *** 180 ********************** 190 ZE=5:SP=16:GOSUB1810 200 PRINTAN"SPIELER" 210 RU=INT(15/AN)*10+10 220 ZE=7:GOSUB1810 230 PRINT"JE"RU"KUGELN" 240 A$=CHR$(32)+CHR$(32) 250 A$=CHR$(18)+A$+A$+CHR$(32) 260 FORI=1TOAN:POKE646,I 270 ZE=3*(I-1):SP=30:GOSUB1810 280 PRINTA$ 290 ZE=ZE+1:GOSUB1810 300 PRINTA$ 310 POKEB+40*ZE+32,I+176 320 ZE=ZE+1:GOSUB1810 330 PRINTA$ 340 NEXT 350 RETURN 360 ******************** 370 *** SPIEL LAEUFT *** 380 ******************** 390 FORI=1TORU 400 FORI0=1TOAN 410 POKE646,I0 420 ZE=10:SP=17:GOSUB1810 430 PRINT"SPIELER"I0 440 ZE=12:SP=16:GOSUB1810 450 PRINTICHR$(157)". KUGEL" 460 POKEB+1018,253 470 POKEV+39,I0:POKEV+40,I0 480 POKEV+41,I0 490 POKE198,0:GOSUB1510 500 POKEV+4,SA:POKEV+5,50 510 POKEV+21,7 520 GETA$:IFA$<>""THEN560 530 FORI1=1TO100:NEXT 540 POKEV+21,3 550 FORI1=1TO100:NEXT:GOTO510 560 IFA$=CHR$(134)THEN600 570 IFA$<>CHR$(133)THEN530 580 SA=SA+16:IFSA=143THENSA=31 590 GOTO500 600 A=SA/8-2 610 POKEF+A,I0 620 POKEB+A,81 630 POKE253,0 640 POKEV+21,3 650 FORI1=1TO20:NEXT 660 IFPEEK(253)=0THEN660 670 B0=B+22*40+16:F0=B0-B+F 680 FORI1=0TO80STEP40 690 FORI2=0TO9 700 IFPEEK(B0+I1+I2)<>81THEN790 710 KU(I0)=KU(I0)+1 720 GOSUB880 730 IF(PEEK(F0+I1+I2)AND15)=I0THEN760 740 KU(I0)=KU(I0)+1 750 GOSUB880 760 POKEB0+I1+I2,32 770 FORI3=1TO200:NEXT 780 GOTO800 790 I1=100:I2=10 800 NEXTI2,I1 810 SA=SA+16:IFSA=143THENSA=31 820 FORI1=1TO400:NEXT 830 NEXTI0,I 840 RETURN 850 ************************* 860 *** SPIELSTAND SETZEN *** 870 ************************* 880 A$=STR$(KU(I0)) 890 ZE=1+3*(I0-1):SP=39-LEN(A$) 900 GOSUB1810 910 POKE646,I0 920 GOSUB1740 930 PRINTA$ 940 RETURN 950 ***************** 960 *** SPIELENDE *** 970 ***************** 980 ZE=21:SP=16:GOSUB1810 990 PRINTCHR$(18)"SPIELENDE" 1000 A$="NEUES SPIEL ?" 1010 ZE=23:SP=16:GOSUB1810 1020 PRINTA$ 1030 FORI=1TO100:NEXT 1040 GETB$:IFB$="J"THENPOKE2,254:RUN110 1050 IFB$="N"THENPRINTCHR$(147):END 1060 ZE=23:SP=16:GOSUB1810 1070 PRINTCHR$(18)A$ 1080 FORI=1TO100:NEXT 1090 GOTO1010 1100 ************************ 1110 *** ANFANG UND TITEL *** 1120 ************************ 1130 SYS12*4096 :REM IRQ INITIAL 1140 B=52224 :REM BILDRAM 1150 N=57344 :REM ZEICHENSATZ NEU 1160 V=53248 :REM VIC 1170 F=55296 :REM FARBRAM 1180 T=54272 :REM SID 1190 S=65472 :REM SPRITE 1200 POKEB+1016,255 1210 POKE53280,0 1220 POKE53281,0 1230 IFPEEK(2)=254THEN1440 1240 A$="":GOSUB1510 1250 FORI=1TO14 1260 A$=A$+CHR$(32) 1270 NEXT 1280 FA=10:R=128 1290 FORZ1=7TO9 1300 Z=Z1:GOSUB1860 1310 NEXTZ1 1320 Z=8 1330 A$="LAWINE" 1340 POKEV+23,1 1350 POKEV+29,1 1360 GOSUB1860 1370 ZE=13:SP=12:GOSUB1810 1380 PRINT"EIN PROGRAMM VON" 1390 A$="G K R A M E R" 1400 Z=16:FA=3:R=0 1410 POKEV+23,0 1420 POKEV+29,0 1430 GOSUB1860 1440 POKE646,9 1450 SA=31 1460 RETURN 1470 END 1480 ************ 1490 *** (null)NG *** 1500 ************ 1510 GOSUB1620 1520 POKET+1,8:POKET,180:POKET+5,12 1530 POKET+8,15:POKET+7,247 1540 POKET+15,13:POKET+14,10 1550 POKET+12,12:POKET+19,12 1560 POKET+24,15:POKET+4,23 1570 POKET+11,23:POKET+18,23 1580 RETURN 1590 ******************** 1600 *** LOESCHEN SID *** 1610 ******************** 1620 FORT0=0TO24:POKET+T0,0:NEXTT0 1630 RETURN 1640 ************** 1650 *** HEULEN *** 1660 ************** 1670 GOSUB1620 1680 POKET,T1-256*INT(T1/256) 1690 POKET+1,INT(T1/256):POKET+6,240 1700 POKET+24,15:POKET+4,33:RETURN 1710 ************** 1720 *** SCHUSS *** 1730 ************** 1740 GOSUB1620 1750 POKET+5,9:POKET+1,21 1760 POKET+24,15:POKET+4,129 1770 RETURN 1780 ********************* 1790 *** CURSOR SETZEN *** 1800 ********************* 1810 POKE214,ZE:POKE211,SP:SYS58640 1820 RETURN 1830 ********************** 1840 *** SPRITES LAUFEN *** 1850 ********************** 1860 Y=Z*8+50 1870 Z=19+B+Z*40-LEN(A$)/2 1880 FORI=1TOLEN(A$) 1890 POKEV+1,230 1900 POKEV,0:T1=34*256 1910 A=ASC(MID$(A$,I,1)) 1920 IFA=32THEN2080 1930 IFA>63THENA=A-64 1940 A0=168-(4*(LEN(A$)+1AND254))+I*8 1950 FORJ=STOS+62:POKEJ,0:NEXTJ 1960 FORJ=0TO7 1970 POKES+3*J+1,USR(N+J+A*8) 1980 NEXTJ:T1=0:GOSUB1670 1990 POKEV+21,1 2000 FORJ=0TOA0STEP4 2010 POKEV,JAND255 2020 POKEV+16,INT(J/256) 2030 POKET+1,JAND255:NEXTJ 2040 FORJ=230TOYSTEP-2 2050 POKEV+1,J 2060 POKET+1,J-34 2070 NEXTJ:GOSUB1740 2080 POKEZ+I+F-B,FA 2090 POKEZ+I,A+R 2100 POKEV+21,0 2110 NEXTI 2120 RETURN 2130 ******************* 2140 *** SPIELANFANG *** 2150 ******************* 2160 ZE=20:SP=0:GOSUB1810 2170 PRINT"WIEVIELE MITSPIELER?[160](1-8)" 2180 POKE198,0 2190 GETA$:IFA$<"1"ORA$>"8"THEN2190 2200 AN=VAL(A$) 2210 PRINT:PRINT 2220 PRINTAN"MITSPIELER - OK?[160](J/N)" 2230 GETA$:IFA$=""THEN2230 2240 IFA$="N"THEN2160 2250 IFA$<>"J"THEN2230 2260 A$=CHR$(32)+CHR$(98) 2270 A$=A$+A$+A$+A$+A$+A$+CHR$(32) 2280 A$=CHR$(166)+A$+CHR$(166) 2290 GOSUB1510 2300 PRINTCHR$(147)CHR$(154); 2310 FORI=0TO23 2320 PRINTA$ 2330 NEXT 2340 PRINTA$; 2350 A$=CHR$(32)+CHR$(32) 2360 A$(0,0)=CHR$(100)+A$ 2370 A$(1,0)=A$+CHR$(101) 2380 A$(0,1)=CHR$(32)+CHR$(119)+CHR$(32) 2390 A$(1,1)=A$(0,1) 2400 A$=CHR$(98) 2410 A$(0,2)=CHR$(32)+A$+CHR$(109) 2420 A$(1,2)=CHR$(110)+A$+CHR$(32) 2430 FORI=0TO1 2440 FORI0=41TO49STEP4 2450 FORI1=0TO640STEP320 2460 A=I0+I1+162*I 2470 A0=INT(RND(0)*2) 2480 ZE=INT(A/40) 2490 SP=A-40*ZE 2500 GOSUB1810 2510 PRINTA$(A0,0) 2520 ZE=ZE+1:GOSUB1810 2530 PRINTA$(A0,1) 2540 ZE=ZE+1:GOSUB1810 2550 PRINTA$(A0,2) 2560 NEXTI1,I0,I 2570 POKEV+29,3:POKEV+23,3 2580 POKEV,156:POKEV+2,204 2590 POKEV+1,50:POKEV+3,50 2600 POKEB+1016,254:POKEB+1017,255 2610 FORI=S-64TOS+63 2620 POKEI,0:NEXT 2630 POKEV+39,1:POKEV+40,1 2640 A$="LAWINE":A0=S-64 2650 FORI=1TO6 2660 A=ASC(MID$(A$,I,1))-64 2670 A1=A0+I-1 2680 IFI>3THENA1=A1+61 2690 FORI0=0TO7 2700 POKEA1+3*I0,USR(N+I0+A*8) 2710 NEXTI0,I 2720 POKEV+21,3 2730 RETURN 2740 ******************* 2750 *** DATAS LADEN *** 2760 ******************* 2770 FORI=65344TOI+62STEP3 2780 READA:POKEI,A 2790 POKEI+1,0:POKEI+2,0 2800 NEXT 2810 REM SPRITE-PFEIL *** 2820 DATA12,30,63,63,30,12,00 2830 DATA00,12,30,63,12,12,12 2840 DATA12,12,12,12,12,18,33 2850 PRINT"SPRITE-PFEIL GELADEN" 2860 FORI=49152TO49267 2870 READA:POKEI,A 2880 IFA-INT(A)<>0THEN2940 2890 IFA<0ORA>255THEN2940 2900 S=S+A:NEXT 2910 IFS<>13791THEN2970 2920 PRINT"INIT-ROUTINE GELADEN" 2930 GOTO3150 2940 A=PEEK(63)+256*PEEK(64) 2950 PRINT"DATA-FEHLER IN ZEILE"I 2960 END 2970 PRINT"DATAFEHLER IN INIT-ROUTINE" 2980 END 2990 REM UPRO INIT-ROUTINE *** 3000 DATA76,9,192,76,116,192,76,137 3010 DATA194,32,160,229,120,169,51,133 3020 DATA1,169,208,160,0,133,96,132 3030 DATA95,132,90,132,88,169,224,133 3040 DATA91,169,240,133,89,32,191,163 3050 DATA169,55,133,1,169,196,141,0 3060 DATA221,169,204,141,136,2,32,68 3070 DATA229,169,56,141,24,208,169,3 3080 DATA141,20,3,169,192,141,21,3 3090 DATA141,18,3,169,6,141,17,3 3100 DATA88,160,226,140,98,192,160,32 3110 DATA140,97,192,160,0,185,178,194 3120 DATA141,64,226,238,97,192,200,192 3130 DATA32,208,242,169,3,141,53,3 3140 DATA141,52,3,96 3150 FORI=49268TO49523 3160 READA:POKEI,A 3170 IFA-INT(A)<>0THEN2940 3180 IFA<0ORA>255THEN2940 3190 S=S+A:NEXT 3200 IFS<>48792THEN3230 3210 PRINT"UPRO TEIL 1 GELADEN" 3220 GOTO3570 3230 PRINT"DATAFEHLER IN TEIL 1":END 3240 REM DATAS TEIL 1 *** 3250 DATA165,203,201,64,208,5,162,240 3260 DATA142,127,192,240,29,201,40,208 3270 DATA12,78,52,3,208,15,162,1 3280 DATA142,52,3,208,8,201,43,208 3290 DATA9,56,46,52,3,162,208,142 3300 DATA127,192,201,64,208,7,169,11 3310 DATA141,172,192,208,13,201,3,240 3320 DATA11,201,6,208,5,169,10,141 3330 DATA183,192,208,10,169,14,141 3340 DATA183,192,169,25,141,172,192,174 3350 DATA53,3,202,142,53,3,208,10 3360 DATA174,52,3,142,53,3,165,253 3370 DATA240,3,76,49,234,169,207,133 3380 DATA252,169,192,133,251,160,1,177 3390 DATA251,201,81,208,57,169,32,145 3400 DATA251,32,113,194,169,128,141,247 3410 DATA192,162,0,189,128,207,201,32 3420 DATA240,16,232,224,10,208,244,169 3430 DATA40,24,109,247,192,141,247,192 3440 DATA208,231,173,247,192,141,26,193 3450 DATA141,31,193,185,192,219,157,128 3460 DATA219,169,81,157,128,207,200,200 3470 DATA192,15,208,187,132,253,160,1 3480 DATA165,251,56,233,40,133,251,133 3490 DATA249,165,252,233,0,133,252,9 3500 DATA16,41,251,133,250,177,249,170 3510 DATA132,2,177,251,201,81,240,23 3520 DATA201,68,48,7,201,72,16,3,76 3530 DATA0,194,200,192,14,208,229,165 3540 DATA251,208,202,76,49,234,152,24 3550 DATA105,40,168,177,251,201,81,240 3560 DATA55,201,32,208,11,32,205,193 3570 FORI=49524TO49800 3580 READA:POKEI,A 3590 IFA-INT(A)<>0THEN2940 3600 IFA<0ORA>255THEN2940 3610 S=S+A:NEXT 3620 IFS<>85219THEN3650 3630 PRINT"UPRO TEIL 2 GELADEN" 3640 GOTO4020 3650 PRINT"DATAFEHLER IN TEIL 2":END 3660 REM DATAS TEIL 2 *** 3670 DATA164,2,169,32,145,251,208,218 3680 DATA72,32,113,194,104,201,68,240 3690 DATA4,201,69,208,9,9,2,145 3700 DATA251,138,145,249,208,226,201 3710 DATA70,208,3,200,208,5,201,71 3720 DATA208,11,136,177,251,201,32,240 3730 DATA205,164,2,208,174,201,87,208 3740 DATA45,164,2,200,177,251,201,81 3750 DATA240,4,201,32,208,4,169,41 3760 DATA208,2,169,39,24,101,2,168 3770 DATA177,251,201,32,240,168,164,2 3780 DATA208,173,138,145,249,169,81,145 3790 DATA251,169,0,133,253,96,140,252 3800 DATA193,201,78,208,6,200,200,169 3810 DATA77,208,4,136,136,169,78,72 3820 DATA177,251,201,32,240,3,104,208 3830 DATA176,104,145,251,169,14,145,249 3840 DATA160,41,76,113,193,72,152,24 3850 DATA105,80,168,177,251,164,2,201 3860 DATA77,240,8,201,78,240,4,104 3870 DATA76,86,193,169,32,145,251,104 3880 DATA72,41,1,208,6,200,200,169 3890 DATA69,208,4,136,136,169,68,72 3900 DATA177,251,201,81,208,4,169,2 3910 DATA208,6,169,14,145,249,169,0 3920 DATA141,64,194,104,9,0,145,251 3930 DATA164,2,104,201,70,240,6,201 3940 DATA71,240,2,208,195,152,24,105 3950 DATA40,168,169,81,145,251,138,145 3960 DATA249,164,2,208,179,152,72,169 3970 DATA0,160,0,153,0,212,200,192 3980 DATA25,208,248,104,168,96,32,96 3990 DATA194,169,9,141,5,212,169,21 4000 DATA141,1,212,169,15,141,24,212 4010 DATA169,129,141,4,212,96 4020 FORI=49801TO49873 4030 READA:POKEI,A 4040 IFA-INT(A)<>0THEN2940 4050 IFA<0ORA>255THEN2940 4060 S=S+A:NEXT 4070 IFS<>92129THEN4100 4080 PRINT"USR-ROUTINE GELADEN" 4090 RETURN 4100 PRINT"DATAFEHLER USR-ROUTINE":END 4110 REM DATAS USR-ROUTINE *** 4120 DATA165,20,72,165,21,72,32,247 4130 DATA183,165,1,72,165,21,201,224 4140 DATA208,14,169,52,120,133,1,160 4150 DATA0,177,20,168,104,133,1,88 4160 DATA104,133,21,104,133,20,76,162 4170 DATA179,0,0,0,0,102,126,63 4180 DATA3,0,0,0,0,102,126,252 4190 DATA192,0,60,126,126,126,126,63 4200 DATA3,0,60,126,126,126,126,252,192 4210 === LAWINE ===================C64 4220 === 38911 BYTES SPEICHER === 4230 === 9417 BYTES PROGRAMM === 4240 === 447 BYTES VARIABLE === 4250 === 161 BYTES ARRAYS === 4260 === 595 BYTES STRINGS === 4270 === 28291 BYTES FREI === 4280 === ============================= 4290 === 722 BYTES MASCHINENSPR. === 4300 === =============================